Here are some common questions and answers about the I3D tool kit: ------------------------------------------------------------------ Q: Can I use I3D with Pascal? (or COBAL, or Prolog, or Visual Basic...) A: I3D is designed to be used with C or C++. If you'd like to use I3D with another language, we suggest that you learn C instead, it is the industry standard for graphics after all. If you MUST use another language that can use DLL's, you can buy the full C source and compile it as a DLL. Q: Why doesn't I3D run as fast as Game_X? A: I3D is a flexible 3D raycasting engine that gives similar performance to early 3D games. It allows many features that other engines do not. This flexibility comes at a small cost in raw speed. Be sure that you are comparing I3D's performance with the same size window, same features, etc. You will find that I3D's performance on 486/33 or better machines to be comparable to most other raycasting engines when run with a similar setup. Q: Why does I3D run slowly under Windows? A: Once again, compare the SAME SIZE window and you will see that I3D only runs about 15% slower under windows than DOS. (The Windows demo shows a 320x200 window.) This performance loss is due to the slowness of Window's bliting. Some high performance VGA cards may improve this. You can also substitute the new VFW 1.1 DrawDIB routines for StretchDIBits, for about a 10% improvement in speed. You'll need the VFW 1.1 developer kit to do this. Q: Why doesn't I3D have a .DLL? A: The I3D engine is designed to work closely with the main C program. For instance, many data structures are passed via pointers. This would not be very easy to make work with a generic DLL. It is possible to wrap the I3D .LIB into a .DLL, we just didn't think it was worth the trouble. Q: Why isn't I3D completly written in hand-tuned assembly code? A: Basically hand tuned assembly code is great for the inner-loops. A bit of I3D (16-bit version) is in-line assemby code. Most of I3D is straight C, which has helped to save the author's sanity. Q: What is raycasting? A: Raycasting a is simplified way of doing a limited 3D enviroment. It lends itself to texture-mapped interior worlds quite well. It does not involve 3D polygons, Z-buffers, or Phong-shading. Within these limitations, raycasting can be quite fast - much faster than most texture-mapped polygon engines.